/**
 * Invoice 业务逻辑
 * @author zhangq
 * @date 2015-03-09
 */
package com.chnbst.bstyun.service;

import java.util.List;
import java.util.Map;

import com.chnbst.bstyun.model.pojo.Invoice;
import com.chnbst.bstyun.model.vo.InvoiceVo;

public interface InvoiceService {

	/**
	 * 新增发票信息
	 * @param invoice 发票对象
	 * @return boolean
	 */
	boolean insertInvoice(Invoice invoice);
	
	/**
	 * 删除发票信息
	 * @param invoiceId 发票Id
	 * @return boolean
	 */
	boolean deleteInvoice(Integer invoiceId);
	
	/**
	 * 修改发票信息
	 * @param invoice 发票对象
	 * @return boolean
	 */
	boolean updateInvoice(Invoice invoice);
	
	/**
     * 根据主键查询发票对象
     * @param invoiceId 发票ID
     * @return 返回invoice对象
     */
	Invoice selectInvoice(Integer invoiceId);
	
	/**
	 * 查询发票列表信息
	 * @param map 
	 * @return 返回发票信息
	 */
	List<InvoiceVo> selectInvoiceList(Map<String, Object> map);
	
	/**
     * 查询发票Vo
     * @param invoiceId 发票ID
     * @return 返回invoiceVo对象
     */
	InvoiceVo selectInvoiceVo(Integer invoiceId);
	
	/**
     * 根据条件查询 Invoice对象总数
     * @param map
     * @return 返回 Invoice总数
     */
    int selectInvoiceCount(Map<String, Object> map);
    
    /**
     * 根据条件 分页 查询 Invoice对象
     * @param map
     * @return 返回 Invoice
     */
    List<InvoiceVo> selectInvoiceVos(Map<String, Object> map);
}
